In Regression Testing without Code Dedication
نویسندگان
چکیده
ZHENG, JIANG. In Regression Testing without Code. (Under the direction of Dr. Laurie Williams.) Software products are often built from commercial-off-the-shelf (COTS) components. When new releases of these components are made available for integration and testing, source code is usually not provided by the COTS vendors. Various regression test selection techniques have been developed and have been shown to be cost effective. However, the majority of these test selection techniques rely on source code for change identification and impact analysis. This dissertation presents a regression test selection (RTS) process called Integrated Black-box Approach for Component Change Identification (I-BACCI) for COTS-based applications. The I-BACCI process reduces the test suite based upon changes in the binary code of the COTS component using the firewall analysis regression test selection method. This dissertation also presents Pallino, the supporting automation that statically analyzes binary code to identify the code change and the impact of these changes. Based on the output of Pallino and the original test suit, testers can determine the regression test cases needed that execute the application glue code which is affected by the changed areas in the new version of the COTS component. Five case studies were conducted on ABB internal products written in C/C++ to determine the effectiveness and efficiency of the I-BACCI process. The total size of application and component for each release is about 340~930 KLOC. The results of the case studies indicate this process can reduce the required number of regression test by as much as 100% if there are a small number of changes in the new component in the best case. Similar to other RTS techniques, when there are many changes in the new component the I-BACCI process suggests a retest-all regression test strategy. With the help of Pallino, RTS via the I-BACCI process can be completed in about one to two person hours for each release of the case studies. Depending upon the percentage of test cases reduction determined by the I-BACCI process, the total time cost of the whole regression testing process can be reduced to 0.0003% of that by retest-all strategy in the best case. Pallino is extensible and can be modified to support other RTS methods for COTS components. Currently, Pallino works on components in Common Object File Format or Portable Executable formats. © Jiang Zheng 2007 All Rights Reserved In Regression Testing without Code By Jiang Zheng A dissertation submitted to the Graduate Faculty of North Carolina State University in partial fulfillment of the requirements for the Degree of Doctor of Philosophy
منابع مشابه
Regression Test Selection and Prioritization Using Variables: Analysis and Experimentation
reducing test suite size without compromising the suite’s effectiveness in performing regression testing. This article presents a hybrid technique using the variable-based method that combines both selection and prioritization. It considers source code changes and coverage information with respect to each test case. Variables are the vital source of changes in the program, and this method captu...
متن کاملStructural Software Testing: Hybrid Algorithm for Optimal Test Sequence Selection during Regression Testing
Regression testing is one of the testing methods, which is done to ensure that the changes made in fixes or any improvement changes does not affect the previously developed functionality of the software. When modification is done to an application, the newly added features had to be tested along with the already available features to ensure that the modification at one part of the program does ...
متن کاملRegression Test Selection Techniques: A Survey
Regression testing is an important and expensive activity that is undertaken every time a program is modified to ensure that the modifications do not introduce new bugs into previously validated code. An important research problem, in this context, is the selection of a relevant subset of test cases from the initial test suite that would minimize both the regression testing time and effort with...
متن کاملA Safe, Efficient Algorithm for Regression Test Selection
Regression testing is a necessary but costly maintenance activity aimed at demonstrating that code has not been adversely aaected by changes. A selective approach to regression testing selects tests for a modi-ed program from an existing test suite. We present a new technique for selective regression testing. Our algorithm constructs control dependence graphs for program versions, and uses thes...
متن کاملMachine Learning and Evolutionary Computing for GUI-based Regression Testing
ReTest is a novel testing tool for Java applications with a graphical user interface (GUI), combining monkey testing and difference testing. Since this combination sidesteps the oracle problem, it enables the generation of GUI-based regression tests. ReTest makes use of evolutionary computing (EC), particularly a genetic algorithm (GA), to optimize these tests towards code coverage. While this ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2007